package scantask.server.domainLayer;

import java.util.Set;
import java.util.Vector;

import scantask.server.domainLayer.Exceptions.AddBenchmarkException;
import scantask.server.domainLayer.Exceptions.GetInformativeDataException;
import scantask.server.domainLayer.Exceptions.GetUserBenchmarksException;
import scantask.server.domainLayer.Exceptions.GetValidDatesException;
import scantask.server.domainLayer.Exceptions.LoginException;

import scantask.containers.Benchmark;
import scantask.containers.Coordinate;
import scantask.containers.InformationObject;
import scantask.containers.User;
import scantask.containers.WeekDate;

public interface ControllerInterface {
	
	public Set<WeekDate> getValidDates(String userName) throws GetValidDatesException;
	
	public void addBenchmark(String userName, String locationName, Coordinate coordinate) throws AddBenchmarkException;
	
	public Vector<InformationObject> getInformativeData(String userName, WeekDate date) throws GetInformativeDataException;
	
	public Vector<Benchmark> getUserBenchmarks(String userName) throws GetUserBenchmarksException;
	
	/* already get it in the login
	public Coordinate getDefaultLocation(String userName) throws GetDefaultLocationException; */
	
	public void logout(String userName);
	
	public User login(String userName, String password) throws LoginException;
/* already get it in the login	
	public String getUserFullName(String userName); */

}
